class regInit {
  constructor(options) {
  }
  /**
   * 正则匹配邮箱
   * @param {*} arr 
   */
  isEmail(Email) {
    return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(Email)
  }
  /**
  * 正则匹配手机号
  * @param {*} arr 
  */
  isMobile = (Mobile) => {
    return /^1[0-9]{10}$/.test(Mobile)
  }
  /**
  * 正则匹配字符串
  * @param {*} arr 
  */
  isString = (String) => {
    return Object.prototype.toString.call(String).slice(8, -1) === 'String'
  }

  /**
  * 正则匹配数字
  * @param {*} arr 
  */
  isNumber = (Number) => {
    return Object.prototype.toString.call(Number).slice(8, -1) === 'Number'
  }

  /**
   * 正则匹配身份证号
   * @param {*} arr 
   */
  isCardID(sId) {
    if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(sId)) {
      console.log('身份证长度或格式错误')
      return false
    }
    //身份证城市
    var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" };
    if (!aCity[parseInt(sId.substr(0, 2))]) {
      console.log('地区非法')
      return false
    }

    // 出生日期验证
    var sBirthday = (sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2))).replace(/-/g, "/"),
      d = new Date(sBirthday)
    if (sBirthday != (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate())) {
      console.log('出生日期非法')
      return false
    }

    // 身份证号码校验
    var sum = 0,
      weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
      codes = "10X98765432"
    for (var i = 0; i < sId.length - 1; i++) {
      sum += sId[i] * weights[i];
    }
    var last = codes[sum % 11]; //计算出来的最后一位身份证号码
    if (sId[sId.length - 1] != last) {
      console.log('身份证号非法')
      return false
    }

    return true
  }

  /**
  * 正则获取url参数
  * @param {*} arr 
  */
  getQueryString(name) {
    const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    const search = window.location.search.split('?')[1] || '';
    const r = search.match(reg) || [];
    return r[2];
  }
}

export default regInit;
